package com.heaven.customerServer.customerController.vo.video;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import lombok.Data;

import java.util.Date;

@Data
public class PublishVideoReq {

    /** 视频分类id **/
    @NotBlank(message = "视频分类id不能为空")
    @Pattern(regexp = "^[a-zA-Z0-9]+-\\d+-\\d+$", message = "视频链接格式不正确")
    private String catId;

    /** 视频文件的md5值 **/
    @NotBlank(message = "视频文件的md5值不能为空")
    private String md5;

    /** 视频标题 **/
    @NotBlank(message = "视频标题不能为空")
    private String title;

    /** 视频文件格式（mp4、mov ...） **/
    @NotBlank(message = "视频文件格式不能为空")
    private String format;

    /** 视频链接(文件存储在minio中，mongodb存储格式：{bucket}:{objectName} **/
    @NotBlank(message = "视频链接不能为空")
    @Pattern(regexp = "^([^:]+):(.*)$", message = "视频链接格式不正确")
    private String url;

    /** 视频封面(文件存储在minio中)，mongodb存储格式：{bucket}:{objectName} **/
    @NotBlank(message = "视频封面不能为空")
    @Pattern(regexp = "^([^:]+):(.*)$", message = "视频链接格式不正确")
    private String coverPicture;

    /** 视频文件大小，单位: B **/
    @NotNull(message = "视频文件大小不能为空")
    private Long size;

    /** 视频时长，单位：s **/
    @NotNull(message = "视频时长不能为空")
    private Long duration;

    /** 发布时间 **/
    @NotNull(message = "发布时间不能为空")
    private Date publishTime;

    /** 视频简介 **/
    private String introduce;
}
